// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
 */

&msmgpio {

	wcd9xxx_intr {
		wcd_intr_default: wcd_intr_default{
			mux {
				pins = "gpio54";
				function = "gpio";
			};

			config {
				pins = "gpio54";
				drive-strength = <2>; /* 2 mA */
				bias-pull-down; /* pull down */
				input-enable;
			};
		};
	};

	cdc_reset_ctrl {
		cdc_reset_sleep: cdc_reset_sleep {
			mux {
				pins = "gpio64";
				function = "gpio";
			};
			config {
				pins = "gpio64";
				drive-strength = <16>;
				bias-disable;
				output-low;
			};
		};
		cdc_reset_active:cdc_reset_active {
			mux {
				pins = "gpio64";
				function = "gpio";
			};
			config {
				pins = "gpio64";
				drive-strength = <16>;
				bias-pull-down;
				output-high;
			};
		};
	};

	blsp1_spi0_default: blsp1_spi0_default {
		pinmux {
			function = "blsp_spi1";
			pins = "gpio0", "gpio1", "gpio3";
		};
		pinmux_cs {
			function = "gpio";
			pins = "gpio2";
		};
		pinconf {
			pins = "gpio0", "gpio1", "gpio3";
			drive-strength = <12>;
			bias-disable;
		};
		pinconf_cs {
			pins = "gpio2";
			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	blsp1_spi0_sleep: blsp1_spi0_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio0", "gpio1", "gpio2", "gpio3";
		};
		pinconf {
			pins = "gpio0", "gpio1", "gpio2", "gpio3";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	blsp1_i2c2_default: blsp1_i2c2_default {
		pinmux {
			function = "blsp_i2c3";
			pins = "gpio47", "gpio48";
		};
		pinconf {
			pins = "gpio47", "gpio48";
			drive-strength = <16>;
			bias-disable = <0>;
		};
	};

	blsp1_i2c2_sleep: blsp1_i2c2_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio47", "gpio48";
		};
		pinconf {
			pins = "gpio47", "gpio48";
			drive-strength = <2>;
			bias-disable = <0>;
		};
	};

	blsp2_i2c0_default: blsp2_i2c0 {
		pinmux {
			function = "blsp_i2c7";
			pins = "gpio55", "gpio56";
		};
		pinconf {
			pins = "gpio55", "gpio56";
			drive-strength = <16>;
			bias-disable;
		};
	};

	blsp2_i2c0_sleep: blsp2_i2c0_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio55", "gpio56";
		};
		pinconf {
			pins = "gpio55", "gpio56";
			drive-strength = <2>;
			bias-disable;
		};
	};

	blsp2_uart1_2pins_default: blsp2_uart1_2pins {
		pinmux {
			function = "blsp_uart8";
			pins = "gpio4", "gpio5";
		};
		pinconf {
			pins = "gpio4", "gpio5";
			drive-strength = <16>;
			bias-disable;
		};
	};

	blsp2_uart1_2pins_sleep: blsp2_uart1_2pins_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio4", "gpio5";
		};
		pinconf {
			pins = "gpio4", "gpio5";
			drive-strength = <2>;
			bias-disable;
		};
	};

	blsp2_uart1_4pins_default: blsp2_uart1_4pins {
		pinmux {
			function = "blsp_uart8";
			pins = "gpio4", "gpio5", "gpio6", "gpio7";
		};

		pinconf {
			pins = "gpio4", "gpio5", "gpio6", "gpio7";
			drive-strength = <16>;
			bias-disable;
		};
	};

	blsp2_uart1_4pins_sleep: blsp2_uart1_4pins_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio4", "gpio5", "gpio6", "gpio7";
		};

		pinconf {
			pins = "gpio4", "gpio5", "gpio6", "gpio7";
			drive-strength = <2>;
			bias-disable;
		};
	};

	blsp2_i2c1_default: blsp2_i2c1 {
		pinmux {
			function = "blsp_i2c8";
			pins = "gpio6", "gpio7";
		};
		pinconf {
			pins = "gpio6", "gpio7";
			drive-strength = <16>;
			bias-disable;
		};
	};

	blsp2_i2c1_sleep: blsp2_i2c1_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio6", "gpio7";
		};
		pinconf {
			pins = "gpio6", "gpio7";
			drive-strength = <2>;
			bias-disable;
		};
	};

	blsp2_uart2_2pins_default: blsp2_uart2_2pins {
		pinmux {
			function = "blsp_uart9";
			pins = "gpio49", "gpio50";
		};
		pinconf {
			pins = "gpio49", "gpio50";
			drive-strength = <16>;
			bias-disable;
		};
	};

	blsp2_uart2_2pins_sleep: blsp2_uart2_2pins_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio49", "gpio50";
		};
		pinconf {
			pins = "gpio49", "gpio50";
			drive-strength = <2>;
			bias-disable;
		};
	};

	blsp2_uart2_4pins_default: blsp2_uart2_4pins {
		pinmux {
			function = "blsp_uart9";
			pins = "gpio49", "gpio50", "gpio51", "gpio52";
		};

		pinconf {
			pins = "gpio49", "gpio50", "gpio51", "gpio52";
			drive-strength = <16>;
			bias-disable;
		};
	};

	blsp2_uart2_4pins_sleep: blsp2_uart2_4pins_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio49", "gpio50", "gpio51", "gpio52";
		};

		pinconf {
			pins = "gpio49", "gpio50", "gpio51", "gpio52";
			drive-strength = <2>;
			bias-disable;
		};
	};

	blsp2_spi5_default: blsp2_spi5_default {
		pinmux {
			function = "blsp_spi12";
			pins = "gpio85", "gpio86", "gpio88";
		};
		pinmux_cs {
			function = "gpio";
			pins = "gpio87";
		};
		pinconf {
			pins = "gpio85", "gpio86", "gpio88";
			drive-strength = <12>;
			bias-disable;
		};
		pinconf_cs {
			pins = "gpio87";
			drive-strength = <16>;
			bias-disable;
			output-high;
		};
	};

	blsp2_spi5_sleep: blsp2_spi5_sleep {
		pinmux {
			function = "gpio";
			pins = "gpio85", "gpio86", "gpio87", "gpio88";
		};
		pinconf {
			pins = "gpio85", "gpio86", "gpio87", "gpio88";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	sdc2_clk_on: sdc2_clk_on {
		config {
			pins = "sdc2_clk";
			bias-disable;		/* NO pull */
			drive-strength = <16>;	/* 16 MA */
		};
	};

	sdc2_clk_off: sdc2_clk_off {
		config {
			pins = "sdc2_clk";
			bias-disable;		/* NO pull */
			drive-strength = <2>;	/* 2 MA */
		};
	};

	sdc2_cmd_on: sdc2_cmd_on {
		config {
			pins = "sdc2_cmd";
			bias-pull-up;		/* pull up */
			drive-strength = <10>;	/* 10 MA */
		};
	};

	sdc2_cmd_off: sdc2_cmd_off {
		config {
			pins = "sdc2_cmd";
			bias-pull-up;		/* pull up */
			drive-strength = <2>;	/* 2 MA */
		};
	};

	sdc2_data_on: sdc2_data_on {
		config {
			pins = "sdc2_data";
			bias-pull-up;		/* pull up */
			drive-strength = <10>;	/* 10 MA */
		};
	};

	sdc2_data_off: sdc2_data_off {
		config {
			pins = "sdc2_data";
			bias-pull-up;		/* pull up */
			drive-strength = <2>;	/* 2 MA */
		};
	};

	pcie0_clkreq_default: pcie0_clkreq_default {
		mux {
			pins = "gpio36";
			function = "pci_e0";
		};

		config {
			pins = "gpio36";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie0_perst_default: pcie0_perst_default {
		mux {
			pins = "gpio35";
			function = "gpio";
		};

		config {
			pins = "gpio35";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	pcie0_wake_default: pcie0_wake_default {
		mux {
			pins = "gpio37";
			function = "gpio";
		};

		config {
			pins = "gpio37";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie0_clkreq_sleep: pcie0_clkreq_sleep {
		mux {
			pins = "gpio36";
			function = "gpio";
		};

		config {
			pins = "gpio36";
			drive-strength = <2>;
			bias-disable;
		};
	};

	pcie0_wake_sleep: pcie0_wake_sleep {
		mux {
			pins = "gpio37";
			function = "gpio";
		};

		config {
			pins = "gpio37";
			drive-strength = <2>;
			bias-disable;
		};
	};

	pcie1_clkreq_default: pcie1_clkreq_default {
		mux {
			pins = "gpio131";
			function = "pci_e1";
		};

		config {
			pins = "gpio131";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie1_perst_default: pcie1_perst_default {
		mux {
			pins = "gpio130";
			function = "gpio";
		};

		config {
			pins = "gpio130";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	pcie1_wake_default: pcie1_wake_default {
		mux {
			pins = "gpio132";
			function = "gpio";
		};

		config {
			pins = "gpio132";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	pcie1_clkreq_sleep: pcie1_clkreq_sleep {
		mux {
			pins = "gpio131";
			function = "gpio";
		};

		config {
			pins = "gpio131";
			drive-strength = <2>;
			bias-disable;
		};
	};

	pcie1_wake_sleep: pcie1_wake_sleep {
		mux {
			pins = "gpio132";
			function = "gpio";
		};

		config {
			pins = "gpio132";
			drive-strength = <2>;
			bias-disable;
		};
	};

	pcie2_clkreq_default: pcie2_clkreq_default {
		mux {
			pins = "gpio115";
			function = "pci_e2";
		};

		config {
			pins = "gpio115";
			drive-strength = <2>;
			bias-pull-up;
		};
	};

	pcie2_perst_default: pcie2_perst_default {
		mux {
			pins = "gpio114";
			function = "gpio";
		};

		config {
			pins = "gpio114";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	pcie2_wake_default: pcie2_wake_default {
		mux {
			pins = "gpio116";
			function = "gpio";
		};

		config {
			pins = "gpio116";
			drive-strength = <2>;
			bias-pull-down;
		};
	};

	pcie2_clkreq_sleep: pcie2_clkreq_sleep {
		mux {
			pins = "gpio115";
			function = "gpio";
		};

		config {
			pins = "gpio115";
			drive-strength = <2>;
			bias-disable;
		};
	};

	pcie2_wake_sleep: pcie2_wake_sleep {
		mux {
			pins = "gpio116";
			function = "gpio";
		};

		config {
			pins = "gpio116";
			drive-strength = <2>;
			bias-disable;
		};
	};

	cci0_default: cci0_default {
		pinmux {
			function = "cci_i2c";
			pins = "gpio17", "gpio18";
		};
		pinconf {
			pins = "gpio17", "gpio18";
			drive-strength = <16>;
			bias-disable;
		};
	};

	cci1_default: cci1_default {
		pinmux {
			function = "cci_i2c";
			pins = "gpio19", "gpio20";
		};
		pinconf {
			pins = "gpio19", "gpio20";
			drive-strength = <16>;
			bias-disable;
		};
	};

	camera_board_default: camera_board_default {
		mux_pwdn {
			function = "gpio";
			pins = "gpio98";
		};
		config_pwdn {
			pins = "gpio98";
			drive-strength = <16>;
			bias-disable;
		};

		mux_rst {
			function = "gpio";
			pins = "gpio104";
		};
		config_rst {
			pins = "gpio104";
			drive-strength = <16>;
			bias-disable;
		};

		mux_mclk1 {
			function = "cam_mclk";
			pins = "gpio14";
		};
		config_mclk1 {
			pins = "gpio14";
			drive-strength = <16>;
			bias-disable;
		};
	};

	camera_front_default: camera_front_default {
		mux_pwdn {
			function = "gpio";
			pins = "gpio133";
		};
		config_pwdn {
			pins = "gpio133";
			drive-strength = <16>;
			bias-disable;
		};

		mux_rst {
			function = "gpio";
			pins = "gpio23";
		};
		config_rst {
			pins = "gpio23";
			drive-strength = <16>;
			bias-disable;
		};

		mux_mclk2 {
			function = "cam_mclk";
			pins = "gpio15";
		};
		config_mclk2 {
			pins = "gpio15";
			drive-strength = <16>;
			bias-disable;
		};
	};

	camera_rear_default: camera_rear_default {
		mux_pwdn {
			function = "gpio";
			pins = "gpio26";
		};
		config_pwdn {
			pins = "gpio26";
			drive-strength = <16>;
			bias-disable;
		};

		mux_rst {
			function = "gpio";
			pins = "gpio25";
		};
		config_rst {
			pins = "gpio25";
			drive-strength = <16>;
			bias-disable;
		};

		mux_mclk0 {
			function = "cam_mclk";
			pins = "gpio13";
		};
		config_mclk0 {
			pins = "gpio13";
			drive-strength = <16>;
			bias-disable;
		};
	};
};
